using System;
using System.Collections;
using System.Collections.Generic;
using System.Xml.Serialization;

using QLTDK.Entities.Base;

namespace QLTDK.Entities.BaseObjects
{
    public class BaseTdCayden : EntityObject<int>
    {
        #region Declarations

		private int? stt = null;
		
		private CdLoaitruden maTruDen = null;
		private TdTuyenden maTuyenDen = null;
		
		private IList<CdLoaibongden> cdLoaibongdens = new List<CdLoaibongden>();
		private IList<CdLoaicanden> cdLoaicandens = new List<CdLoaicanden>();
		
		#endregion

        #region Constructors

		/// <summary>
        /// Since we want to leverage automatic properties, init appropriate members here.
        /// </summary>
		private void InitMembers()
		{
			CdLoaibongdens = new List<CdLoaibongden>();
			CdLoaicandens = new List<CdLoaicanden>();
		}
		
		/// <summary>
        /// Creates valid entity object
        /// </summary>
		public BaseTdCayden() 
		{ 
			InitMembers();
		}
		
        #endregion

        #region Properties

		[DomainSignature]
		public virtual int? Stt
        {
            get { return stt; }
			set
			{
				stt = value;
			}
        }

		[DomainSignature]
		public virtual CdLoaitruden MaTruDen
        {
            get { return maTruDen; }
			set
			{
				maTruDen = value;
			}
        }
		
		[DomainSignature]
		public virtual TdTuyenden MaTuyenDen
        {
            get { return maTuyenDen; }
			set
			{
				maTuyenDen = value;
			}
        }
		
		[XmlIgnore]
		public virtual IList<CdLoaibongden> CdLoaibongdens
        {
            get { return cdLoaibongdens; }
            protected set
			{
				cdLoaibongdens = value;
			}
        }
		
		[XmlIgnore]
		public virtual IList<CdLoaicanden> CdLoaicandens
        {
            get { return cdLoaicandens; }
            protected set
			{
				cdLoaicandens = value;
			}
        }
		
        #endregion
    }
}